Internet And Network Technologies
Foundations of iOS Security
iOS Security Architecture and Application Data Protection
Securing Against Threats, Securing for Enterprise, and Jailbreaking Devices

iOS Security Architecture and Application Data Protection

Course Number:
sp_fois_a01_it_enus
Lesson Objectives

iOS Security Architecture and Application Data Protection

  • start the course
  • describe how Apple protects the Apple Store
  • define malware, exploitation, and compare Mac OS threats versus iOS threats
  • describe reduced attack surface and stripped-down iOS
  • describe code signing, return-oriented programming (ROP), and data execution prevention
  • describe privilege separation, address space layout randomization, and sandboxing
  • describe data protection API and class hierarchy
  • describe file protection classes
  • describe keychain item protection classes
  • describe how file and keychain data protection classes are collected and managed in keybags
  • describe how user passcodes may be attacked
  • identify components of network security supported by iOS 8
  • describe the VPN protocols and authentication methods supported by iOS 8
  • describe Wi-Fi standards and authentication methods supported by iOS 8
  • describe Bluetooth connections and profiles supported by iOS 8
  • describe iOS 8 support for single sign-on authentication on enterprise networks
  • describe iOS 8 support for AirDrop security
  • describe how code signing is used to enforce iOS security
  • describe how Mandatory Code Signing is controlled by the Mandatory Access Control Framework, including AMFI hooks
  • describe the provisioning profile and how the provisioning file is validated
  • use the Xcode codesign tool to show signing certificate authority information for an iOS application
  • use command line to list the entitlements for a signed iOS application
  • describe how application signing information can be collected and verified
  • describe how signatures are enforced on application processes
  • describe how to prevent signed code from being tampered with
  • describe how to use Just-In-Time compiling to implement dynamic code signing
  • use the Xcode codesign tool to obtain information on an iOS application's signing certificate authority and its granted entitlements

Overview/Description
In order to effectively develop secure iOS applications, it is key for developers to have a significant understanding of the overall iOS security architecture, as well as key techniques that can be used to protect application data and executable code. In this course, you will learn key principles about the iOS security architecture, as well as principles in administering data protection in the iOS environment. You will also learn how to install and use the iPhone Data Protection Tools forensics toolkit, how to implement access control and provisioning, and how to enforce application code signing.

Target Audience
Application developers on the beginner and intermediate level seeking to create and deploy secure iOS applications.

Securing Against Threats, Securing for Enterprise, and Jailbreaking Devices

Course Number:
sp_fois_a02_it_enus
Lesson Objectives

Securing Against Threats, Securing for Enterprise, and Jailbreaking Devices

  • start the course
  • identify iOS Sandbox components and describe how they are related
  • describe how runtime process security makes use of sandboxing to protect applications and their data on iOS 8 devices
  • describe how extensions are sandboxed to protect their files and memory space in iOS
  • describe how applications are launched under a sandbox and how applications are restricted to their own container directories in the App Store
  • identify the contents of a configuration profile and how to identify configuration profile payload types
  • describe the general functionality of the Apple Configurator
  • use Apple Configurator to create a new configuration profile
  • use Apple Configurator to update and remove configuration profiles
  • configure and run the Profile Manager service
  • enroll a user device with the OS X Server mobile device management service using the user's Profile Manager web portal
  • enroll a user device with the OS X Server mobile device management service by downloading and installing an enrollment profile
  • describe the basic idea behind fuzzing and how it is used to reveal security issues in iOS applications
  • describe steps for carrying out a fuzz test
  • carry out a fuzz test on Safari web browser for Mac OS X Yosemite
  • describe how to exploit use-after-free and double free bugs
  • describe the concept of regions and how regions are allocated and deallocated
  • describe TCMalloc allocator as well as large and small object allocation and deallocation
  • describe background on ROP and basics in ARM architecture
  • describe how system calls are invoked on ARM
  • describe the ARM calling convention on iOS
  • create a new configuration profile using Apple Configurator and enroll a device using the OS X Profile Manager service

Overview/Description
Each iOS application runs in a separate virtual machine, or sandbox, and applications may also be subjected to dynamic analysis, or fuzzing, whereby illegal input is intentionally applied to an application so as to test for security issues. Return oriented programming may also be used in attempts to reveal certain application vulnerabilities, and devices may be jailbroken so as to make them more open to developers who can then better evaluate system security. In this course, you will learn about sandboxes and how to initialize them, how to secure iOS applications and devices for enterprise, how to design and administer fuzz tests on iOS applications, how to defend applications against exploits, how to use return-oriented programming to reveal application vulnerabilities, and how to install and use jailbreaking tools on iOS devices.

Target Audience
Application developers on the beginner and intermediate level seeking to create and deploy secure iOS applications

Close Chat Live